***
***      PORTS Documentation
***
***      Version 1.0
***      Sept 1, 1997
***
***  MarshallSoft Computing, Inc.
***  POB 4543 Huntsville AL 35815
***
***  Phone: 205-881-4630
***  email: ports@marshallsoft.com
***    web: http://www.marshallsoft.com
***    ftp: ftp://ftp.marshallsoft.com/marshallsoft
***    bbs: 205-880-9748 (8N1, 14400 baud)

The latest version of PORTS can always be found on our BBS (205-880-9748) in
library 5 "Other" and on our FTP site at

     ftp://ftp.marshallsoft.com/marshallsoft/other

Look for PORTSxx.ZIP where "xx" is the version number.

*** Introduction

The PORTS program is a freeware DOS utility which reports the serial port UART
address and UART type (8250, 16450, or 16550) for all serial ports. If you
need to know what type of UARTs you have, then this is the program you need.

Each UART can be characterized by its address, its type, and its IRQ
assignment. Each is discussed below.

*** UART Address

Each UART uses 8 consecutive port addresses, beginning on a 8-byte boundard.
The "UART address" is the base address of your UART. Standard addresses have
been defined for COM1 through COM4, as follows:

   COM1 0x3f8
   COM2 0x2f8
   COM3 0x3e8
   COM4 0x2e8

If you have a multiport board installed, it is very common to select 0x100,
0x108, 0x110, 0x118, etc. for UART (base) addresses.

*** UART Type

The three generic types of UARTs are the 8250, the 16450, and the 16550. The
8250 is the oldest, and is only suitable when running DOS applications (not in
a Windows DOS box) up to about 19200 baud.

The 16450 is a 16-bit part (unlike the 8250 which is a 8-bit part), and
performs well in DOS applications at 19200 baud and above, and in some Windows
applications.

The 16550 (and the 16550A) is a 16-bit part which contain 16-byte FIFO
buffers. It is the UART of choice for any demanding DOS serial port
application, and for all Windows serial port applications.

*** UART IRQ Assignment

The IRQ is assigned to a particular UART so that the Interrupt Service Routine
(ISR) can be executed whenever a serial port event occurs for the assigned
UART.

DOS does not provide interrupt driven serial port services, and thus there is
no "Assigned IRQ" table. Serial port libraries designed to run under DOS
either use the standard assigned IRQs

   COM1 IRQ4
   COM2 IRQ3
   COM3 IRQ4
   COM4 IRQ3

or they are capable of assigning UART addresses and IRQs when the application
program runs, restoring the IRQ values before exiting. For this reason, it
really makes no since to ask for the IRQ assignement under DOS, since either
the standard IRQs are assigned (IRQ4 for COM1 & COM3, IRQ3 for COM2 and COM4),
or the IRQ is changed at runtime.

Under Windows 3.1/95/NT, unlike DOS, the operating system maintains an IRQ
assignment for each port. This is most easily determined by looking at the
Control Panel.

Under Windows 3.1, select the Control Panel icon, then choose "Ports",
"Settings", and then "Advanced" to see the UART port addresses and IRQ
assignments. The MSD executable shipped with Windows 3.1 can also be run to
get serial port information.

Under Windows 95, double click the System icon in the Control Panel (in My
Computer), then choose the "Device Manager", then the port of interest, and
then choose "Resources".

*** Come Visit Us

If you are in the market for a DOS or Windows serial port library, then come
take a look at us at www.marshallsoft.com or dial up our 24-hour BBS. We have
developed libraries for C/C++, Pascal, Visual Basic, Power Basic, and Delphi.
Libraries for additional languages (we like computer languages) are under
consideration (August 1997).
